package cn.kgc.springcloud.clients;

import cn.kgc.springcloud.entity.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.List;

/**
 * @author 课工场
 * @date 2025/1/10
 * @description
 */
@FeignClient("CONSULSERVICE")   // 标识目标服务在注册中心的名字  用于获取可用节点
public interface CnsulClient {

    @GetMapping("/consul/m1")
    String method1();

    // 访问目标接口时 如果需要携带参数  则需要声明参数组织的方式   queryString ?   path  /id
    // /consul/m2?id=10
    @GetMapping("/consul/m2")
    String method2(@RequestParam("id") Integer id);

    @GetMapping("/consul/m3")
    String method3(@RequestParam("id") Integer id, @RequestParam("info") String info);


    // /consul/m4/10
    @GetMapping("/consul/m4/{id}")
    String method4(@PathVariable("id") Integer id);


    @GetMapping("/consul/m5")
    String method5(@RequestParam("id") Integer id, @RequestParam("username") String username, @RequestParam("password") String password);


    //  @RequestBody修饰参数  表示参数后续要组织成json格式进行传递
    @PostMapping("/consul/m6")
    String method6(@RequestBody User user);

    @PostMapping("/consul/m7")
    String method7(@RequestParam("ids") Integer[] ids);


    @PostMapping("/consul/m8")
    User method8();


    @PostMapping("/consul/m9")
    List<User> method9();

    @PostMapping("/consul/m10")
    HashMap<String, Object> method10();
}
